home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / AncestorNotifier.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.2 KB  |  177 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Window;
  6. import java.awt.event.ComponentEvent;
  7. import java.awt.event.ComponentListener;
  8. import java.beans.PropertyChangeEvent;
  9. import java.beans.PropertyChangeListener;
  10. import java.io.Serializable;
  11. import java.util.EventObject;
  12. import javax.swing.event.AncestorEvent;
  13. import javax.swing.event.AncestorListener;
  14. import javax.swing.event.EventListenerList;
  15.  
  16. class AncestorNotifier implements ComponentListener, PropertyChangeListener, Serializable {
  17.    Component firstInvisibleAncestor;
  18.    EventListenerList listenerList = new EventListenerList();
  19.    JComponent root;
  20.    // $FF: synthetic field
  21.    static Class class$javax$swing$event$AncestorListener;
  22.  
  23.    AncestorNotifier(JComponent var1) {
  24.       this.root = var1;
  25.       this.addListeners(var1, true);
  26.    }
  27.  
  28.    void addAncestorListener(AncestorListener var1) {
  29.       this.listenerList.add(class$javax$swing$event$AncestorListener != null ? class$javax$swing$event$AncestorListener : (class$javax$swing$event$AncestorListener = class$("javax.swing.event.AncestorListener")), var1);
  30.    }
  31.  
  32.    void addListeners(Component var1, boolean var2) {
  33.       this.firstInvisibleAncestor = null;
  34.  
  35.       for(Object var3 = var1; this.firstInvisibleAncestor == null; var3 = ((Component)var3).getParent()) {
  36.          if (var2 || var3 != var1) {
  37.             ((Component)var3).addComponentListener(this);
  38.             if (var3 instanceof JComponent) {
  39.                JComponent var4 = (JComponent)var3;
  40.                var4.addPropertyChangeListener(this);
  41.             }
  42.          }
  43.  
  44.          if (!((Component)var3).isVisible() || ((Component)var3).getParent() == null) {
  45.             this.firstInvisibleAncestor = (Component)var3;
  46.          }
  47.       }
  48.  
  49.       if (this.firstInvisibleAncestor instanceof Window) {
  50.          this.firstInvisibleAncestor = null;
  51.       }
  52.  
  53.    }
  54.  
  55.    // $FF: synthetic method
  56.    static Class class$(String var0) {
  57.       try {
  58.          return Class.forName(var0);
  59.       } catch (ClassNotFoundException var2) {
  60.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  61.       }
  62.    }
  63.  
  64.    public void componentHidden(ComponentEvent var1) {
  65.       Component var2 = var1.getComponent();
  66.       boolean var3 = this.firstInvisibleAncestor == null;
  67.       this.removeListeners(var2.getParent());
  68.       this.firstInvisibleAncestor = var2;
  69.       if (var3) {
  70.          this.fireAncestorRemoved(this.root, 2, (Container)var2, var2.getParent());
  71.       }
  72.  
  73.    }
  74.  
  75.    public void componentMoved(ComponentEvent var1) {
  76.       Component var2 = var1.getComponent();
  77.       this.fireAncestorMoved(this.root, 3, (Container)var2, var2.getParent());
  78.    }
  79.  
  80.    public void componentResized(ComponentEvent var1) {
  81.    }
  82.  
  83.    public void componentShown(ComponentEvent var1) {
  84.       Component var2 = var1.getComponent();
  85.       if (var2 == this.firstInvisibleAncestor) {
  86.          this.addListeners(var2, false);
  87.          if (this.firstInvisibleAncestor == null) {
  88.             this.fireAncestorAdded(this.root, 1, (Container)var2, var2.getParent());
  89.          }
  90.       }
  91.  
  92.    }
  93.  
  94.    protected void fireAncestorAdded(JComponent var1, int var2, Container var3, Container var4) {
  95.       Object[] var5 = this.listenerList.getListenerList();
  96.  
  97.       for(int var6 = var5.length - 2; var6 >= 0; var6 -= 2) {
  98.          if (var5[var6] == (class$javax$swing$event$AncestorListener != null ? class$javax$swing$event$AncestorListener : (class$javax$swing$event$AncestorListener = class$("javax.swing.event.AncestorListener")))) {
  99.             AncestorEvent var7 = new AncestorEvent(var1, var2, var3, var4);
  100.             ((AncestorListener)var5[var6 + 1]).ancestorAdded(var7);
  101.          }
  102.       }
  103.  
  104.    }
  105.  
  106.    protected void fireAncestorMoved(JComponent var1, int var2, Container var3, Container var4) {
  107.       Object[] var5 = this.listenerList.getListenerList();
  108.  
  109.       for(int var6 = var5.length - 2; var6 >= 0; var6 -= 2) {
  110.          if (var5[var6] == (class$javax$swing$event$AncestorListener != null ? class$javax$swing$event$AncestorListener : (class$javax$swing$event$AncestorListener = class$("javax.swing.event.AncestorListener")))) {
  111.             AncestorEvent var7 = new AncestorEvent(var1, var2, var3, var4);
  112.             ((AncestorListener)var5[var6 + 1]).ancestorMoved(var7);
  113.          }
  114.       }
  115.  
  116.    }
  117.  
  118.    protected void fireAncestorRemoved(JComponent var1, int var2, Container var3, Container var4) {
  119.       Object[] var5 = this.listenerList.getListenerList();
  120.  
  121.       for(int var6 = var5.length - 2; var6 >= 0; var6 -= 2) {
  122.          if (var5[var6] == (class$javax$swing$event$AncestorListener != null ? class$javax$swing$event$AncestorListener : (class$javax$swing$event$AncestorListener = class$("javax.swing.event.AncestorListener")))) {
  123.             AncestorEvent var7 = new AncestorEvent(var1, var2, var3, var4);
  124.             ((AncestorListener)var5[var6 + 1]).ancestorRemoved(var7);
  125.          }
  126.       }
  127.  
  128.    }
  129.  
  130.    public void propertyChange(PropertyChangeEvent var1) {
  131.       String var2 = var1.getPropertyName();
  132.       if (var2 != null && (var2.equals("parent") || var2.equals("ancestor"))) {
  133.          JComponent var3 = (JComponent)((EventObject)var1).getSource();
  134.          if (var1.getNewValue() != null) {
  135.             if (var3 == this.firstInvisibleAncestor) {
  136.                this.addListeners(var3, false);
  137.                if (this.firstInvisibleAncestor == null) {
  138.                   this.fireAncestorAdded(this.root, 1, var3, ((Component)var3).getParent());
  139.                }
  140.             }
  141.          } else {
  142.             boolean var4 = this.firstInvisibleAncestor == null;
  143.             Container var5 = (Container)var1.getOldValue();
  144.             this.removeListeners(var5);
  145.             this.firstInvisibleAncestor = var3;
  146.             if (var4) {
  147.                this.fireAncestorRemoved(this.root, 2, var3, var5);
  148.             }
  149.          }
  150.       }
  151.  
  152.    }
  153.  
  154.    void removeAllListeners() {
  155.       this.removeListeners(this.root);
  156.    }
  157.  
  158.    void removeAncestorListener(AncestorListener var1) {
  159.       this.listenerList.remove(class$javax$swing$event$AncestorListener != null ? class$javax$swing$event$AncestorListener : (class$javax$swing$event$AncestorListener = class$("javax.swing.event.AncestorListener")), var1);
  160.    }
  161.  
  162.    void removeListeners(Component var1) {
  163.       for(Object var2 = var1; var2 != null; var2 = ((Component)var2).getParent()) {
  164.          ((Component)var2).removeComponentListener(this);
  165.          if (var2 instanceof JComponent) {
  166.             JComponent var3 = (JComponent)var2;
  167.             var3.removePropertyChangeListener(this);
  168.          }
  169.  
  170.          if (var2 == this.firstInvisibleAncestor) {
  171.             break;
  172.          }
  173.       }
  174.  
  175.    }
  176. }
  177.